package com.congee02;

public class NumberOfSubarrays_O1 {

    // byd 预处理 & 具体数值不重要，重要的是数值的性质
    public int numberOfSubarrays(int[] nums, int k) {

        int n = nums.length;

        int[] preCnts = new int[n + 1];
        preCnts[0] = 1;

        int ans = 0;
        int pre = 0;
        for (int i = 0 ; i < n ; i ++ ) {
            pre += ((nums[i] & 1) == 1) ? 1 : 0;
            ans += pre - k >= 0 ? preCnts[pre - k] : 0;
            preCnts[pre] ++;
        }

        return ans;
    }

}
